-
Notifications
You must be signed in to change notification settings - Fork 16.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Probe for rm3100 #10581
Probe for rm3100 #10581
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TMRC and CMM don't look right
@@ -117,13 +117,15 @@ bool AP_Compass_RM3100::init() | |||
ccy1 != CCP1_DEFAULT || ccy0 != CCP0_DEFAULT || | |||
ccz1 != CCP1_DEFAULT || ccz0 != CCP0_DEFAULT) { | |||
// couldn't read one of the cycle count registers or didn't recognize the default cycle count values | |||
goto fail; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this change doesn't seem to do anything?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it just remove the goto that is useless
dev->write_register(RM3100_TMRC_REG, TMRC, true); // cycle count z | ||
dev->write_register(RM3100_CMM_REG, CMM, false); // CMM configuration | ||
dev->write_register(RM3100_TMRC_REG, TMRC, true); // CMM data rate | ||
dev->write_register(RM3100_CMM_REG, CMM, true); // CMM configuration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
have you flight tested the use of CMM? If so, can you please give a flight log?
It does look like we should enable it, but it needs testing, and we should use a valid TMRC value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I use this code to test the sensors, and the reading looks fine and agree with other compass. Surely with wrong TMRC, it get back to default value . here are some logs with the RM3100 as compass2 with this code : https://drive.google.com/open?id=19pSJBCCyfYx-mhPedg6KyBzomxzbfQEy
@@ -117,13 +117,15 @@ bool AP_Compass_RM3100::init() | |||
ccy1 != CCP1_DEFAULT || ccy0 != CCP0_DEFAULT || | |||
ccz1 != CCP1_DEFAULT || ccz0 != CCP0_DEFAULT) { | |||
// couldn't read one of the cycle count registers or didn't recognize the default cycle count values | |||
goto fail; | |||
// hal.console->printf("RM3100: Unable to read the register for whoami test\n"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left-over?
@tridge here is two logs with this PR : |
I think you’ve commented on the wrong thread. Perhaps raise a new issue with a log?
Regards,
James
… On 29 Apr 2019, at 7:57 am, rbachtell ***@***.***> wrote:
It appears tome that the latest master release broke the can-flow code. I had it working previously and just compiled a version with yesterday’s master release and now I get an IMU1 forced reset loop, if I turn off optical flow it works properly and also works with PX4flow/I2C although it does a single forced reset before becoming functional.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@tridge ping on this ! This driver has successfully fly since some weeks already |
I have a version of this at https://github.com/OXINARF/ardupilot/commits/review/10581. I believe that's the correct code. It seems there was some confusion here with the simple change to add the CMM register to the checked registers. The TMRC register should be set, otherwise the default update rate is too low. @khancyr if you are OK with it, I'll push it here and then add this for the dev call. |
Hi :) I've done a few flights with RM3100 (Compass 2). Works great 🙂 Mag biases are much smaller compared to onboard ones. Also, it seems to have slightly less noise. Compass was intentionally placed (together with CubeBlack) just above the noisy ESCs |
Any news when the RM3100 will be compatible with ArduRover? I would like test this on a big agriculture rover. |
PM me, I have a working latest master .apj I have been using on a scale rover.
… On Sep 17, 2019, at 8:07 AM, weaverlave ***@***.***> wrote:
Any news when the RM3100 will be compatible with ArduRover? I would like test this on a big agriculture rover.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub <#10581?email_source=notifications&email_token=AC3NAIHBG73KANTSJPBEOTDQKDXEBA5CNFSM4GYVHLHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD643GRI#issuecomment-532263749>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AC3NAIEW7SKCAVK233YLZQLQKDXEBANCNFSM4GYVHLHA>.
|
Can´t send a PM to your acount. Maybe you can email me: jensweber95@web.de Thanks alot! |
@OXINARF @khancyr Any chance this could be merged soon? We have a new ArduPilot-centric manufacturer with 3100 I2c and UAVCAN units in prototype and integrated GPS/3100 on the drawing board. It would be very useful to have this in master when they go to beta testing. They have the probe compiled as do I with hours of testing and no issues. Let me know if I can be of any help, I would be more than happy to do whatever I can. Thanks, RB |
Here is another package of flash logs from a successful flights - CubePilot with an RM3100 module running on the I2C bus in a quadcopter. Compass was deliberately placed 2-3cm above noise ESC - we tried that with ICM 9dof sensor and immediately after takeoff, we had to switch to manual mode since the interference was too big ;) https://drive.google.com/file/d/1SnTKaqwUuK8Oh6Itl7fhxsQKs4tTJdme/view?usp=sharing |
ADD_BACKEND(DRIVER_RM3100, AP_Compass_RM3100::probe(GET_I2C_DEVICE(i, HAL_COMPASS_RM3100_I2C_ADDR), | ||
true, ROTATION_NONE)); | ||
} | ||
FOREACH_I2C_INTERNAL(i) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are we probing interbal bus? for internal it should be an explicit line in hwdef.dat
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excuse my lack of understanding but how does this differ from all the other internal i2c probes in this file?
This came up in the Copter-4.0 testing thread here: https://discuss.ardupilot.org/t/copter-4-0-0-rc3-available-for-beta-testing/50250/18 so I'll add it to the to-do list for Copter-4.0 (but not as a blocker) |
No worries ! Thanks for handling that ! |
No description provided.